A tree-structured database includes a multitude of interconnected nodes, beginning with a single root node. The root node connects to at least two other nodes, each of which may be connected to more nodes or may terminate with a connection to data leaves. The final interconnected node that connects to data leaves is referred to as a result node. A multi-threaded system will traverse the database from the root node to a data leaf with a variety of methods (e.g. in-order, post-order or level-order).
Multi-threaded systems must reliably retrieve data from a data leaf while the same data is being concurrently updated by another thread. The threads used to retrieve and to update the data leaf, each may include multiple operations of queries on tree nodes and leaves, with potentially long periods of concurrent updating and searching. A temporal miss occurs when the multi-threaded system using the shared database has a race condition between the data being updated and the data being retrieved.